package cn.tedu.straw.search.vo;

import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.io.Serializable;

@Data
@Document(indexName = "questions") // 配置ElasticSearch服务器中的索引名称
public class QuestionVO implements Serializable {

    /**
     * id：该属性需要被响应到客户端，以便于实现客户端界面的操作，例如显示“问题”详情
     */
    @Id
    private Integer id;
    /**
     * 标题：必要，将用于匹配搜索的关键字
     */
    @Field(type = FieldType.Text, analyzer = "ik_smart", searchAnalyzer = "ik_smart")
    private String title;
    /**
     * 正文：必要，将用于匹配搜索的关键字
     */
    @Field(type = FieldType.Text, analyzer = "ik_smart", searchAnalyzer = "ik_smart")
    private String content;
    /**
     * 作者id：用于完善页面功能
     */
    @Field(type = FieldType.Integer)
    private Integer userId;
    /**
     * 作者昵称：用于完善页面显示
     */
    @Field(type = FieldType.Keyword)
    private String userNickName;
    /**
     * 点击量：用于完善页面显示
     */
    @Field(type = FieldType.Integer)
    private Integer hits;

}
